package com.xnyzc.lhy.finance.entity.invoice;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.Version;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

/**
*
* 
*
* @author haoyfa
* @since 2019-10-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="OaSysInvoiceStrategy对象", description="")
public class OaSysInvoiceStrategy implements Serializable {

private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "策略名称")
    private String strategyName;

    @ApiModelProperty(value = "开票机构id")
    private Long invoiceOrgId;

    @ApiModelProperty(value = "特殊票种标记.00：普通发票 02：农业发票 06：抵扣通行费 07：其他通行费 08：成品油  默认：00")
    private String invoiceSpecialMark;

    @ApiModelProperty(value = "征税方式 0：普通征税，2：差额征税")
    private String taxationMode;

    @ApiModelProperty(value = "发票种类编码")
    private String invoiceTypeCode;

    @ApiModelProperty(value = "开票人")
    private String drawer;

    @ApiModelProperty(value = "0:正数发票（蓝票） 1：负数发票（红票）")
    private String invoiceType;

    @ApiModelProperty(value = "商品编码")
    private String goodsCode;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "税率")
    private Double goodsTaxRate;

    @ApiModelProperty(value = "含税标志 0：不含税 1：含税")
    private String priceTaxMark;

    @ApiModelProperty(value = "0:未使用，1:使用； 默认为0")
    private String preferentialMark;

    @ApiModelProperty(value = "发票行性质。0：正常行 1：折扣行 2：被折扣行。默认等于=0")
    private String setGoodsLineNature;

    @ApiModelProperty(value = "推送标志0：不推送 1：推送（邮箱电话必填一个）。默认=0")
    private String pushType;

    @ApiModelProperty(value = "作废类型1：已开票作废。默认=1")
    private String invalidType;

    @ApiModelProperty(value = "作废人")
    private String invalidOperator;

    @ApiModelProperty(value = "是否启用。1=启用；0=未启用。默认=1")
    private Boolean isStart;

    @ApiModelProperty(value = "扩展字段1")
    private String expand1;

    @ApiModelProperty(value = "扩展字段2")
    private String expand2;

    @ApiModelProperty(value = "扩展字段3")
    private String expand3;

    @ApiModelProperty(value = "版本号")
    @Version
    private Long version;

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "创建人")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    private Long updateUser;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;


    public static final String STRATEGY_NAME = "strategy_name";

    public static final String INVOICE_ORG_ID = "invoice_org_id";

    public static final String INVOICE_SPECIAL_MARK = "invoice_special_mark";

    public static final String TAXATION_MODE = "taxation_mode";

    public static final String INVOICE_TYPE_CODE = "invoice_type_code";

    public static final String DRAWER = "drawer";

    public static final String INVOICE_TYPE = "invoice_type";

    public static final String GOODS_CODE = "goods_code";

    public static final String GOODS_NAME = "goods_name";

    public static final String GOODS_TAX_RATE = "goods_tax_rate";

    public static final String PRICE_TAX_MARK = "price_tax_mark";

    public static final String PREFERENTIAL_MARK = "preferential_mark";

    public static final String SET_GOODS_LINE_NATURE = "set_goods_line_nature";

    public static final String PUSH_TYPE = "push_type";

    public static final String INVALID_TYPE = "invalid_type";

    public static final String INVALID_OPERATOR = "invalid_operator";

    public static final String IS_START = "is_start";

    public static final String EXPAND1 = "expand1";

    public static final String EXPAND2 = "expand2";

    public static final String EXPAND3 = "expand3";

    public static final String VERSION = "version";

    public static final String DELETED = "deleted";

    public static final String CREATE_USER = "create_user";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_USER = "update_user";

    public static final String UPDATE_TIME = "update_time";

}
